package com.newshub.admin.service;

import com.newshub.admin.entity.RssFetchLog;
import com.newshub.business.dto.PageResult;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * RSS抓取日志服务接口
 */
public interface RssFetchLogService {
    
    /**
     * 分页查询抓取日志
     */
    PageResult<RssFetchLog> getPage(Long rssFeedId, String status, LocalDate startDate, 
                                   LocalDate endDate, int page, int size, String sortField, String sortOrder);
    
    /**
     * 根据RSS源ID查询抓取日志
     */
    PageResult<RssFetchLog> getByFeedId(Long rssFeedId, LocalDate startDate, 
                                       LocalDate endDate, int page, int size);
    
    /**
     * 根据ID查询单条记录
     */
    RssFetchLog getById(Long id);
    
    /**
     * 保存抓取日志
     */
    void save(RssFetchLog log);
    
    /**
     * 删除单条记录
     */
    void deleteById(Long id);
    
    /**
     * 批量删除记录
     */
    void deleteByIds(List<Long> ids);
    
    /**
     * 获取抓取统计信息
     */
    Object getStatistics(Long rssFeedId, LocalDate startDate, LocalDate endDate);
    
    /**
     * 批量查询多个RSS源的成功率统计
     * @param feedIds RSS源ID列表
     * @param days 统计天数
     * @return Map<feedId, Map<统计字段, 值>>
     */
    Map<Long, Map<String, Object>> batchGetSuccessRates(List<Long> feedIds, int days);
}
